package co.rcantor.dev.siasar.comunidad;

import java.io.IOException;
import java.util.Calendar;
import java.util.List;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import co.rcantor.dev.siasar.R;

public class TabComunidad1 extends Activity{
	
	private static TextView fechaDisplay;
    private Button selFecha;
    private int YY;
    private int MM;
    private int DD;    

	private static String corregimiento;
    private static String latitud = "";
    private static String longitud="";
    private static EditText encuestador;
    private static EditText nombre;

    static final int DATE_DIALOG_ID = 0;
    
    private DatePickerDialog.OnDateSetListener fechaListener =
            new DatePickerDialog.OnDateSetListener() {
                public void onDateSet(DatePicker view, int year, 
                                      int month, int day) {
                    YY = year;
                    MM = month;
                    DD = day;
                    updateDisplay();
                }
            };

	public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabcomunidad1);
        
        Bundle recibido = getIntent().getExtras();
		if(recibido !=null){
			latitud = recibido.getString("latitud");
			longitud = recibido.getString("longitud");
			try {
				Geocoder gc = new Geocoder(TabComunidad1.this);
				List<Address> a = gc.getFromLocation(Double.valueOf(latitud),Double.valueOf(longitud),1);
				a.get(0).getCountryName();
			} catch (NumberFormatException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
        fechaDisplay = (TextView) findViewById(R.id.fechaDisplay);
        selFecha = (Button) findViewById(R.id.selectorFecha);

        selFecha.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(DATE_DIALOG_ID);
            }
        });

        final Calendar c = Calendar.getInstance();
        YY = c.get(Calendar.YEAR);
        MM = c.get(Calendar.MONTH);
        DD = c.get(Calendar.DAY_OF_MONTH);

        updateDisplay();

        encuestador = (EditText) findViewById(R.id.encuestador);
        nombre = (EditText) findViewById(R.id.nombre);
        
        Spinner spCorregimiento = (Spinner) findViewById(R.id.corregimientos);
        ArrayAdapter<CharSequence> adCorregimiento = ArrayAdapter.createFromResource(
                this, R.array.corregimientos, android.R.layout.simple_spinner_item);
        adCorregimiento.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spCorregimiento.setAdapter(adCorregimiento);
        spCorregimiento.setOnItemSelectedListener(new MyOnItemSelectedListener());  
    }
	
	public class MyOnItemSelectedListener implements OnItemSelectedListener {

	    public void onItemSelected(AdapterView<?> parent,
	        View view, int pos, long id) {
	    	setCorregimiento((pos+1)+"");
	    }

	    public void onNothingSelected(AdapterView<?> parent) {
	      setCorregimiento("1");
	    }
	}
	
    private void updateDisplay() {    		
        fechaDisplay.setText(new StringBuilder()
        			.append(YY).append("-")
                    .append((MM+1)<10?"0"+(MM+1):(MM+1)).append("-")
                    .append(DD<10?"0"+DD:DD));
    }
    
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_DIALOG_ID:
            return new DatePickerDialog(this,
                        fechaListener,
                        YY, MM, DD);
        }
        return null;
    }
	
	public static String getCorregimiento() {
		return corregimiento;
	}

	public void setCorregimiento(String corregimiento) {
		TabComunidad1.corregimiento = corregimiento;
	}

	public static String getLatitud() {
		return latitud;
	}

	public void setLatitud(String latitud) {
		TabComunidad1.latitud = latitud;
	}

	public static String getLongitud() {
		return longitud;
	}

	public void setLongitud(String longitud) {
		TabComunidad1.longitud = longitud;
	}

	public static EditText getEncuestador() {
		return encuestador;
	}

	public static EditText getNombre() {
		return nombre;
	}

	public static TextView getFechaDisplay() {
		return fechaDisplay;
	}

	public void setFechaDisplay(TextView fechaDisplay) {
		TabComunidad1.fechaDisplay = fechaDisplay;
	}

}
